/*!
    \copyright Copyright (c) 2025 Qualcomm Technologies International, Ltd.
    \version 
    \file
    \ingroup    accessory_device_service
    \brief Creates tables of marshal type descriptors for accessory device service data types
*/

#include "accessory_device_service_marshal_desc.h"

#if defined(INCLUDE_ACCESSORY_DEVICE_SERVICE) && defined(INCLUDE_MIRRORING)

static const marshal_member_descriptor_t mmd_accessory_device_service_data[] =
{
    MAKE_MARSHAL_MEMBER(accessory_device_service_marshal_data_t, uint8, type),
    MAKE_MARSHAL_MEMBER(accessory_device_service_marshal_data_t, uint8, state),
};

static const marshal_type_descriptor_t marshal_type_descriptor_accessory_device_service_marshal_data_t =
        MAKE_MARSHAL_TYPE_DEFINITION(accessory_device_service_marshal_data_t, mmd_accessory_device_service_data);

/* Use xmacro to expand type table as array of type descriptors */
#define EXPAND_AS_TYPE_DEFINITION(type) (const marshal_type_descriptor_t *) &marshal_type_descriptor_##type,
const marshal_type_descriptor_t * const  mtdesc_accessory_device_service[ACCESSORY_DEVICE_SERVICE_MARSHAL_OBJ_TYPE_COUNT] =
{
    ACCESSORY_DEVICE_SERVICE_COMMON_MARSHAL_TYPES_TABLE(EXPAND_AS_TYPE_DEFINITION)
    ACCESSORY_DEVICE_SERVICE_MARSHAL_TYPES_TABLE(EXPAND_AS_TYPE_DEFINITION)
};
#undef EXPAND_AS_TYPE_DEFINITION

#endif /* defined(INCLUDE_ACCESSORY_DEVICE_SERVICE) && defined(INCLUDE_MIRRORING) */
